/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cn.edu.nju.software.greencreditsystem.service;

import cn.edu.nju.software.greencreditsystem.DAO.PredictionDAO;
import cn.edu.nju.software.greencreditsystem.DTO.OutputPredictionDTO;
import cn.edu.nju.software.greencreditsystem.domain.Prediction;
import cn.edu.nju.software.greencreditsystem.factory.DAOFactory;
import java.util.List;

/**
 * 作者：韩天
 * 创建时间：2011-8-22
 * 类描述：预警模块相关的service封装类
 */
public class PredictionService {
    
    /**
     * 方法描述：取得未读预警的条数
     * param：
     * return：
     */
    public int get_UnreadedCount(int enterpriseID){
        PredictionDAO pDAO = DAOFactory.getPredictionDAOInstance();
        return pDAO.getUnread(enterpriseID).size();
    }
    
    /**
     * 方法描述：取得所有预警
     * param：
     * return：
     */
    public List<Prediction> get_AllPrediction(int enterpriseID){
        PredictionDAO pDAO = DAOFactory.getPredictionDAOInstance();
        return pDAO.getAll(enterpriseID);
    }
    
    /**
     * 方法描述：取得未读预警
     * param：
     * return：
     */
    public List<Prediction> get_UnreadedPrediction(int enterpriseID){
        PredictionDAO pDAO = DAOFactory.getPredictionDAOInstance();
        return pDAO.getUnread(enterpriseID);
    }
    
    /**
     * 方法描述：取得一条预警
     * param：
     * return：
     */
    public OutputPredictionDTO getPrediction(int predictionID){
        PredictionDAO pDAO = DAOFactory.getPredictionDAOInstance();
        Prediction prediction = pDAO.getById(predictionID);
        OutputPredictionDTO predictionDTO = new OutputPredictionDTO();
        //设置警告开头
        predictionDTO.setHeader(prediction.getEnterprise().getName()+":");
        //设置警告主体
        predictionDTO.setBody("企业破产的概率为："+prediction.getProbability());
        //设置警告结尾
        predictionDTO.setTail(prediction.getDate().toString());
        //设置警告为已读
        prediction.setReaded(true);
        pDAO.update(prediction);
        return predictionDTO;
    }
    
    /**
     * 方法描述：取得几条最新预警
     * param：
     * return：
     */
    public List<Prediction> get_TwoPrediction(){
        PredictionDAO pDAO = DAOFactory.getPredictionDAOInstance();
        List<Prediction> list = pDAO.getUnread();
        if(list.size() > 3){
            return list.subList(0, 4);
        }else{
            return list;
        }
    } 
}
